/* PROJECTO: Projecto 3
 * FICHEIRO: pontuacao.h
 *
 * DESCRIÇÃO: Codigo correspondente a pontuacao.
 *            
 *
 * TURMA / GRUPO: Turma 1 / Grupo 12
 * AUTORES: Fábio Domingo da Silva Rodrigues
 *          Rolando Emanuel Lopes Pereira
 *
 * DECLARAÇÃO:
 * Declaramos sob compromisso de honra que este trabalho nas suas partes
 * constituintes de código (e relatório, se aplicável) é original e da nossa
 * autoria, não correspondendo, portanto, a cópia ou tradução de outros
 * trabalhos já realizados, na FEUP ou fora dela.
 * Mais declaramos que todos os documentos ou código que serviram de base ao
 * desenvolvimento do trabalho descrito no relatório e seus anexos são
 * adequadamente citados e explicados na respectiva secção de referências
 * bibliográficas e que todas as eventuais partes transcritas ou utilizadas de
 * outras fontes estão devidamente assinaladas, identificadas e evidenciadas.
 * Subscrevemos a declaração acima:
 * Fábio Domingo da Silva Rodrigues
 * Rolando Emanuel Lopes Pereira
 *
 * REFERÊNCIAS E FONTES DE INFORMAÇÃO UTILIZADAS:
 *
 * SISTEMA OPERATIVO:
 * Debian 4.0
 * AMBIENTE DE DESENVOLVIMENTO:
 * Vim 7.0.235
 *
 * DATA DE INÍCIO: 20/05/2009
 * DATA DE CONCLUSÃO: 30/05/2009
 *
 * */

#ifndef _PONTUACAO_H_
#define _PONTUACAO_H_

#include "jogador.h"
#include <map>
#include <string>
#include <ostream>
#include <algorithm>

struct pnt {
    pnt(std::string nome, int pontuacao)
    {
        Nome = nome;
        Pont = pontuacao;
    }

	std::string Nome;
	int Pont;
};

class Pontuacao
{
public:
	Pontuacao(Jogador jogador);
	~Pontuacao();
	int CalcularPontuacao() const;
	void OrdenarPontuacao();
	void LerFicheiroPontuacao(std::string);
	void EscreverFicheiroPontuacao(std::string) const;
    friend std::ostream& operator<< (std::ostream& out, const Pontuacao& p);
    static bool sortFunc(const pnt& p1, const pnt& p2);
private:
	Jogador Jog;
	std::vector<pnt> Pontuacoes;
};

#endif // _PONTUACAO_H_
